package cn.lg.soar.system.api.service;

import cn.lg.soar.system.api.model.DictDTO;

import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * 字典接口
 * @author luguoxiang
 * @date 2021-08-11
 * 开源项目：https://gitee.com/lgx1992/lg-soar 求star！请给我star！请帮我点个star！
 */
public interface IDictApi {

    /**
     * 根据字典类型获取数据字典list
     * @param type 字典类型
     * @return
     */
    List<DictDTO> listByType(String type);

    /**
     * 根据字典类型获取数据字典map
     * @param type 字典类型
     * @return
     */
    default Map<Integer, DictDTO> mapByType(String type) {
        List<DictDTO> list = listByType(type);
        return list.stream().collect(Collectors.toMap(DictDTO::getValue, x -> x));
    }

    /**
     * 根据字典类型获取数据字典map
     * @param type 字典类型
     * @return
     */
    default Map<Integer, String> labelMapByType(String type) {
        List<DictDTO> list = listByType(type);
        return list.stream().collect(Collectors.toMap(DictDTO::getValue, DictDTO::getLabel));
    }

}
